From 005a860fbe42ce2a5033409685584ac324b24cf1 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 31 Jul 2014 12:24:07 -0700 Subject: [PATCH] Avoid executing git in fingerprint() We already discovered the local rev earlier on, so there's no need to rediscover it through git. --- src/cargo/sources/git/source.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/cargo/sources/git/source.rs b/src/cargo/sources/git/source.rs index 925b9ae24..7e7e0e848 100644 --- a/src/cargo/sources/git/source.rs +++ b/src/cargo/sources/git/source.rs @@ -8,7 +8,7 @@ use core::source::{Source, SourceId, GitKind, Location, Remote, Local}; use core::{Package, PackageId, Summary, Registry, Dependency}; use util::{CargoResult, Config, to_hex}; use sources::PathSource; -use sources::git::utils::{GitReference,GitRemote,Master,Other}; +use sources::git::utils::{GitReference, GitRemote, Master, Other, GitRevision}; /* TODO: Refactor GitSource to delegate to a PathSource */ @@ -19,7 +19,8 @@ pub struct GitSource<'a, 'b> { checkout_path: Path, source_id: SourceId, path_source: Option, - config: &'a mut Config<'b> + rev: Option, + config: &'a mut Config<'b>, } impl<'a, 'b> GitSource<'a, 'b> { @@ -53,7 +54,8 @@ impl<'a, 'b> GitSource<'a, 'b> { checkout_path: checkout_path, source_id: source_id.clone(), path_source: None, - config: config + rev: None, + config: config, } } @@ -179,6 +181,7 @@ impl<'a, 'b> Source for GitSource<'a, 'b> { let path_source = PathSource::new(&self.checkout_path, &source_id); self.path_source = Some(path_source); + self.rev = Some(actual_rev); self.path_source.as_mut().unwrap().update() } @@ -193,8 +196,7 @@ impl<'a, 'b> Source for GitSource<'a, 'b> { } fn fingerprint(&self, _pkg: &Package) -> CargoResult { - let db = self.remote.db_at(&self.db_path); - db.rev_for(self.reference.as_slice()).map(|r| r.to_string()) + Ok(self.rev.get_ref().to_string()) } } -- 2.30.2